EKS でノードグループ削除が「削除失敗」になったときの対処方法
困っていた内容
EKS でノードグループの削除を実行したところ、しばらくしてステータスが「削除に失敗しました」になりました。
失敗理由が確認できないのですが、どこを確認したら良いでしょうか?
どう対応すればいいの?
Amazon EKS コンソールの場合は「ヘルスの問題」タブをご確認ください。
AWS CLI の場合はdescribe-nodegroupコマンドを実行してください。
ノードグループの削除を実行すると、Pod の Drain や Node のスケールイン等が開始されます。処理過程でエラーが発生すると削除に失敗することが想定され、よくある原因としてセキュリティグループの削除エラーがあります。
マネージド型ノードグループの場合、作成時にセキュリティグループも作成され、ノードグループ削除の際には作成されたセキュリティグループも一緒に削除されます。セキュリティグループは、別の EC2 インスタンスに割り当て済みなど使用中の場合は削除できず、削除に失敗した場合は「ヘルスの問題」タブに表示されます。
そのため、「ヘルスの問題」タブにセキュリティグループの削除エラー等が表示されていないか確認してください。 AWS CLI の場合はdescribe-nodegroupコマンドから同様の情報が取得できます。
$ aws eks describe-nodegroup --cluster-name 【クラスター名】 --nodegroup-name 【ノードグループ名】 --query 'nodegroup.health' { "issues": [ { "code": "Ec2SecurityGroupDeletionFailure", "message": "DependencyViolation - resource has a dependent object", "resourceIds": [ "sg-1234567890" ] } ] }
セキュリティグループの削除エラーの場合は、次のナレッジセンターも参考にセキュリティグループのデタッチ等を実施してください。
Amazon VPC セキュリティグループの削除中に発生した問題のトラブルシューティング
参考資料
Ec2SecurityGroupDeletionFailure: マネージド型ノードグループのリモートアクセスセキュリティグループを削除できませんでした。セキュリティグループから依存関係を削除します。
次の理由により、セキュリティグループを削除できないことがあります。
- セキュリティグループがデフォルトのセキュリティグループである。
- セキュリティグループが独自のルールまたは他のセキュリティグループのルールによって参照されている。
- セキュリティグループが実行中または停止状態にあるインスタンスと関連付けられている。
- セキュリティグループがネットワークインターフェイスに関連付けられている。
DeleteSecurityGroup
オペレーションを実行する許可がない。